// 引入createStore方法
import {createStore} from 'vuex'
import { getUserInfoFn } from '../api/login'
// 创建仓库实例
const store = createStore({
    state() {
        return {
            // 定义管理员信息
            userInfo:{},
            // 导航存储菜单
            menus:[],
            isCollapse:false

        }
    },
    mutations:{
        // 修改管理员信息
        setUserInfo(state,userInfo) {
            state.userInfo = userInfo
        },
        // 修改导航菜单
        setMenus(state,menus) {
            state.menus = menus
        },
        // 修改侧边栏状态
        setAsidewidth(state) {
            state.isCollapse = !state.isCollapse
        }
    },
    actions:{
        // 获取登录用户信息
        getUserInfo(context) {
            return new Promise((resolve,reject) => {
                getUserInfoFn().then(res => {
                    context.commit('setUserInfo',res.data)
                    // 存储菜单数据
                    context.commit('setMenus',res.data.menus)
                    resolve(res)
                }).catch(err => reject(err))
            })
        }
    }
})

export default store